package org.club.common.model.entity;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Setter
@Getter
@Data
public class Activity{
    /**
     * 活动ID
     * 数据库主键，自增字段，唯一标识一个活动
     */
    private Long id;
    /**
     * 活动标题
     * 用于描述活动的主题或名称，不能为空
     */
    private String title;
    /**
     * 活动描述
     * 对活动内容的详细说明，可以为空
     */
    private String description;
    /**
     * 活动封面图URL
     * 存储活动封面图片的URL地址，通常指向OSS对象存储
     */
    private String coverUrl;
    /**
     * 活动开始时间
     * 活动的计划开始时间，格式为 yyyy-MM-dd HH:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    /**
     * 活动结束时间
     * <p>
     * 活动的计划结束时间，格式为 yyyy-MM-dd HH:mm:ss
     * </p>
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
    /**
     * 社团ID
     * 关联的社团ID，外键关联 clubs 表的 id 字段
     */
    private Long clubId;
    /**
     * 活动状态
     * 活动的状态值：
     * 0: 未发布
     * 1: 已发布
     * 2: 已取消
     * 3: 已延期
     * 4.已结束
     */
    private Integer status;
    /**
     * 最大参与人数
     * 活动允许的最大参与人数，可以为空
     */
    private Integer maxParticipants;
    /**
     * 创建时间
     * 活动记录的创建时间，格式为 yyyy-MM-dd HH:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;
    /**
     * 更新时间
     * 活动记录的最后更新时间，格式为 yyyy-MM-dd HH:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedAt;

}
